#ifndef __VIMOCK__BEHAVIORS_RECORDER__
#define __VIMOCK__BEHAVIORS_RECORDER__

#include "object.hpp"
#include "invocation.hpp"
#include "behavior.hpp"
#include "invocation_matcher.hpp"
#include "throw_exception_behavior.hpp"

namespace vimock {
class behaviors_recorder {
public:
	behaviors_recorder();
	void record_invocation(invocation inv);
	void record_value_to_return(object value_to_return);
	void record_exception_to_throw(exception_thrower ex_to_throw);
	behavior_vector get_behaviors();
private:
	behavior_vector behaviors;
	invocation_matcher last_inv_matcher;
};
}

#endif //__VIMOCK__BEHAVIORS_RECORDER__ 
